package recycle.dao;

import recycle.pojo.Admin;
import recycle.vo.AdminParam;
import java.util.*;
import recycle.utils.Page;
import java.io.Serializable;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 描述：后台管理员信息表 数据库访问层接口
* @author 孙冉
* @date 2019/07/22
*/
@Mapper
public interface AdminMapper {

    /**
    * 描述：根据Id获取Admin对象
    * @param id
    */
    Admin findById(@Param("adminId") Serializable adminId);
    
    /**
    * 描述：获取所有的Admin对象
    */
    List<Admin> findAll();

	/**
    * 描述：新增保存Admin对象
    */
    int save(@Param("adminId")Admin admin);

	/**
    * 描述：根据Id删除Admin对象
    * @param id
    */
    int delete(@Param("adminId")Serializable adminId);
	
	/**
    * 描述：更新Admin对象
    */
    int update(Admin admin);
    
    /**
     * 根据不确定的条件，动态查询
     */
    List<Admin> query(AdminParam param);
    
    /**
     * 根据不确定的条件，查询总行数
     */
    int getCount(AdminParam param);
    
    /**
     * 获得表中数据的总行数
     */
    int getTotalCount();

    /**
     * 根据ID查询
     */
    List<Admin> findByadminId(@Param("adminId") int adminId);

    /**
     * 根据地区查询
     */
    List<Admin> findByResponsible(@Param("responsible") String  responsible);

    /**
     * 根据职务查询
     */
    List<Admin> findByType(@Param("responsible") String  type);

    /**
     * 根据工号查询对象
     */
    Admin findByOther1(@Param("other1") String other1);

    /**
     *通过账号密码查询
     */
    Admin findByNameAndPassword(@Param("other1") String other1,@Param("password") String password,@Param("type") int type);
    /**
     * 描述：获取所有的Admin对象
     */
    List<Admin> findAllAdmin();

    /**
     * 描述：新增保存Admin对象
     */
    int saveNew(Admin admin);
    /**
     *通过账号查询
     */
    Admin findByNameAndType(@Param("other1") String other1,@Param("type") int type);
}
